1. Field
Embodiments of the invention relate to the field of networking; and more specifically, to validating control plane and data plane association.
2. Background
A network element (e.g., a router, switch, bridge, etc.) is a piece of networking equipment, including hardware and software that communicatively interconnects other equipment on the network (e.g., other network elements, computer end stations, etc.). A typical network element is logically separated into a control plane and a data plane (sometimes also referred to as a forwarding plane). In the case that the network element is a router, the control plane typically determines how data (e.g., packets) is to be routed (e.g., the next hop for the data and the outgoing port for that data), and the data plane is in charge of forwarding that data. For example, the control plane typically includes one or more routing protocols (e.g., Border Gateway Protocol (BGP), Interior Gateway Protocol (IGP), Label Distribution Protocol (LDP), Resource Reservation Protocol (RSVP), etc.) that communicate with other network elements to select routes or paths to destinations (e.g., based on advertised routes from neighboring network elements). The control plane populates these routes into one or more routing structures (e.g., Routing Information Base (RIB), Label Information Base (LIB)). The control plane also typically programs the data plane with information (e.g., adjacency and route information) based on the routing structures (e.g., RIB, LIB). For example, in the case the network element is a router, the control plane populates one or more forwarding tables (e.g., Label Forwarding Information Base (LFIB), Forwarding Information Base (FIB), etc.) and adjacency information to the data plane. The data plane uses these forwarding structures and adjacency information to determine how to forward the data.
During normal operation, the routes as determined by the control plane (i.e., the selected advertised routes) are programmed to and used in the forwarding process by the data plane (thus the control plane and the data plane are in a consistent state). However, on some occasions, the routes as determined by the control plane are not the same routes used by the data plane (thus the control plane and data plane are in an inconsistent state). In other words, the routes in the data plane (e.g., in the forwarding tables and/or the adjacency information) do not match the routes as determined by the control plane. The inconsistency may be caused by a number of factors. For example, due to a bug in the mechanism that programs the data plane routes, the control plane may program the wrong route to the data plane. Forwarding traffic with wrong or invalid routes negatively affects the performance of the network element and the network (e.g., data loops, dropped traffic, etc.).
In the case that the network element is providing Multiprotocol Label Switching (MPLS) service, during normal operation, the control plane programs the data plane with the negotiated labels (i.e., labels negotiated by signaling protocols (e.g., LDP, RSVP)) based on a particular forwarding equivalence class (FEC), and adjacency information (e.g., layer 2 next hop addresses) (this is sometimes collectively referred to as a pseudowire data plane forwarding path). However, on some occasions, the control plane may program the incorrect information to the data plane (e.g., the control plane may program incorrect adjacency information to the data plane). Thus, traffic forwarded with incorrect data plane information may be forwarded to different ports and/or different network elements than is intended.
The network element may perform several different OAM (Operations, Administration, and Management) techniques for detecting data plane faults. For example, the network element may transmit keepalive messages to another network element and receive keepalive messages from that other network element. Typically, these keepalive messages use the same data path as regular data traffic. Thus, the network element may detect a fault when it does not receive the keepalive messages from the other network element.
Institute of Electrical and Electronics Engineers (IEEE) standard 802.1ag “Virtual Bridged Local Area Networks, Amendment 5: Connectivity Fault Management”, December 2007, (hereinafter “802.1ag”), may be employed to discover and verify connectivity faults and isolate those faults to an individual bridge or LAN. For example, maintenance association end points (MEPs) may be created at different points in an Ethernet network. For example, in a Virtual Private LAN Service (VPLS) network, MEPs may be provisioned at the endpoints of a pseudowire between Provider Edge (PE) network elements. The MEPs are used to detect faults by transmitting OAM messages to other MEPs in the network (e.g., Continuity Check Messages (CCM), Loopback Messages (LBM), Linktrace Messages(LTM), etc.). When a data plane fault occurs, the MEPs either receive their own CFM messages (loop in the network) or do not receive CFM messages from the other MEPs. In addition, 802.1ag detects faults due to 802.1ag misconfigurations (e.g., 802.1ag is configured in a VPLS network incorrectly by a network administrator) and due to 802.1ag protocol failures. However, 802.1ag does not distinguish between faults due to data plane failures, faults due to a 802.1ag misconfigurations, or faults due to 802.1ag protocol failures.